--# -path=.:alltenses

abstract SvenskaAbs = Cat ** {

----------------------------------------
fun
som_helst : IP -> NP;

----------------------------------------
cat

Main;

V_NP; V_Adv; V_Comp;
VP_NP; VP_Adv; VP_Comp;
Cl_NP; Cl_Adv; Cl_Comp;
Adv_NP;

----------------------------------------
fun

ComplV_NP : V_NP -> NP -> VP;
ComplV_Adv : V_Adv -> Adv -> VP;
ComplV_Comp : V_Comp -> Comp -> VP;

SlashV_NP : V_NP -> VP_NP;
SlashV_Adv : V_Adv -> VP_Adv;
SlashV_Comp : V_Comp -> VP_Comp;

PredVP_NP : NP -> VP_NP -> Cl_NP;
PredVP_Adv : NP -> VP_Adv -> Cl_Adv;
PredVP_Comp : NP -> VP_Comp -> Cl_Comp;

FrontNP : NP -> Cl_NP -> Cl;
FrontAdv : Adv -> Cl_Adv -> Cl;
FrontComp : Comp -> Cl_Comp -> Cl;

AdvSlash : Prep -> Adv_NP;
SlashV_Adv_NP : V_Adv -> Adv_NP -> VP_NP;

-- AdvVP/* : VP/* -> Adv -> VP/*; {:NP Adv Comp:}
-- AdVVP/* : AdV -> VP/* -> VP/*; {:NP Adv Comp:}

----------------------------------------
fun

FrontSubj_Subj_V : NP -> V -> Cl;
FrontSubj_Subj_V_Adv : NP -> V_Adv -> Adv -> Cl;
FrontAdv_Subj_V_Adv : NP -> V_Adv -> Adv -> Cl;

----------------------------------------
fun

MainText : Text -> Main;

Pastaende : S -> Text;
Join : Text -> Text -> Text;

Gor : Cl -> S;
GorInte : Cl -> S;
Gjorde : Cl -> S;
GjordeInte : Cl -> S;
HarGjort : Cl -> S;
HarInteGjort : Cl -> S;

Relativ : RCl -> RS;

PositA : A -> AP;
SuperlA : A -> AP;

DetCN : Det -> CN -> NP;
AdjCN : AP -> CN -> CN;
AdvCN : CN -> Adv -> CN;
PrepNP : Prep -> NP -> Adv;
UseN : N -> CN;
UsePN : PN -> NP;
UsePron : Pron -> NP;
IdetCN : IDet -> CN -> IP;

GenPl : NP -> Det;
GenSg : NP -> Det;
MassNP : CN -> NP;
ApposCN : CN -> NP -> CN;

UseV : V -> VP;
PredVP : NP -> VP -> Cl;
AdVVP : AdV -> VP -> VP;
AdvVP : VP -> Adv -> VP;

ConjNP : Conj -> NP -> NP -> NP;
ConjS : Conj -> S -> S -> S;
SubjS : Subj -> S -> Adv;
AdvS : Adv -> S -> S;

CompNP : NP -> Comp;
UseComp : Comp -> VP;


}

